g++ -g -fno-omit-frame-pointer -fno-inline-functions correctness.cpp train.cpp guessing.cpp md5.cpp -o test.exe 

perf record -e cpu-clock -F 4000 -g  -- ./test.exe

perf script -i perf.data &> ./perf_output/test.unfold

# grep -E 'II|FF|HH|GG|SIMD_MD5Hash' ./perf_output/test0.unfold > ./perf_output/test.unfold
# perf annotate -s SIMD_MD5Hash

./FlameGraph/stackcollapse-perf.pl ./perf_output/test.unfold &> ./perf_output/test.folded

# 导出采样数据
# perf script > ./perf_output/test.perf

# 生成火焰图
./FlameGraph/flamegraph.pl ./perf_output/test.folded > ./perf_output/flamegraph8.svg

# ————————————————————————————————
g++ -g -fno-omit-frame-pointer -fno-inline-functions correctness_guess.cpp train.cpp guessing.cpp md5.cpp -o correctness_guess 

g++ -g -fno-omit-frame-pointer -fno-inline-functions correctness_guess.cpp train.cpp guessing.cpp md5.cpp ./Pthread_OpenMP/Pthread.cpp -o correctness_guess -pthread

g++ -g -fno-omit-frame-pointer -fno-inline-functions correctness_guess.cpp train.cpp guessing.cpp md5.cpp ./Pthread_OpenMP/Pthread.cpp -o correctness_guess -fopenmp

perf record -e cpu-clock -F 4000 -g  -- ./correctness_guess 

perf script -i perf.data &> ./perf_output/correctness_guess.unfold

./FlameGraph/stackcollapse-perf.pl ./perf_output/correctness_guess.unfold &> ./perf_output/correctness_guess.folded

./FlameGraph/flamegraph.pl ./perf_output/correctness_guess.folded > ./perf_output/flamegraph_guess.svg